package com.mzj.saas.mservice.smartlock.vo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;


@Getter
@Setter
@NoArgsConstructor
public class SkynetInternetsVO extends SkynetInternetVO{
    //设备编号
    private String deviceNum;
    //电池电量
    private Integer battery;
    //信号强度
    private Integer signalStrength;
    //0:心跳上报 1：门磁状态变化
    private Integer dataType;
    //门磁标志。0位关闭，1位打开
    private Integer gateState;
    //1：撞击报警 2：低电量 3：撬锁报警 5：长时间未关 6：蓝牙cookie错误 8：非法开门报警 9：密码错误自锁报警
    private Integer alarmType;
    //uuid
    private String uuid;
    //0：成功 1：失败
    private String callbackState;
    //开锁类型:1：永久密码 2：指纹 3：临时密码 4：远程开锁 5：蓝牙开锁 6：cookie开锁 7：门卡开锁 8- 撤防/布防 10：机械钥匙开门 11：反锁 12 - 门内开锁 13:装修密码 14:装修密码开锁失败 15:离线开锁
    private Integer unlockType;
    //标识
    private String identification;
    //反锁(1:关闭反锁 2:打开反锁) 门内开锁(1:门内开门 2:弹出方舌) 其它开锁类型这个字段无效
    private Integer recordType;
    //记录时间
    private String unlockTime;
    //电池电量
    private String batteryInfo;
    //开锁状态 0-成功 -1 失败 （撤防/布防时 0：撤防 1：布防）
    private String status;
    //记录时间
    private String dateTime;
    //度数
    private String degree;
    //电压 -1是没有值
    private String voltage;
    //开合闸状态 0:合闸 1:跳闸
    private String sluiceGate;
    //累计用量
    private String accumulatedDosage;
    //门锁状态 (0：关 1：开 )
    private Integer doorMsg;
    //1:同步临时密码 2：同步成员密码 4：同步门卡 6：同步指纹 7:远程开锁 8:清空指令 9:清空指令(包含蓝牙密码)
    private Integer commandType;

    @Override
    public SkynetInternetsVO getData() {
        String s = JSONObject.toJSONString(super.getData());
        Object object = JSON.parse(s);
        if (object instanceof JSONArray) {
            return null;
        }
        return JSON.parseObject(JSONObject.toJSONString(super.getData()), SkynetInternetsVO.class);
    }

    public Object getDatas() {
        return super.getData();
    }
}
